In general, since the amount of moving-image data is large, the moving-image data is in many cases subjected to compression coding processing when the moving-image data is transmitted from a transmitting device to a receiving device or when the moving-image data is stored in a storage device. As typical moving-image compression coding systems, MPEG (Moving Picture Experts Group) 2 and MPEG 4, which are developed by ISO/IEC (International Standardization Organization/International Electrotechnical Commission), are widely used.
One characteristic element technology for the MPEG system involves performing motion prediction by referring to a temporally previous image that has already been coded or by referring to previous and subsequent images and performing coding using the prediction values. During such coding, block data of a current image and block data of a reference image obtained by decoding an already encoded image are used to determine a motion vector. The motion vector is a value indicating the amount of spatial movement for each block and is determined using a block matching technique or the like for searching for, from the reference image, the position of a region that is the most similar to the current image for each block.
In MPEG-4, the motion vector is also permitted to specify a region outside the boundary of an input image. In other words, it is possible to perform motion compensation by referring to a region located outside the boundary of an input image. When a region specified by a motion vector is located outside the boundary of an input image, the region of the reference image is extended based on the values of pixels in the vicinity of the boundary of the reference image decoded within an encoding circuit and the values of the extended region are used as prediction values.
H.264 proposed by the ITU (International Telecommunication Union) is attracting attention as a compression coding system that is capable of transferring a high-quality moving image with a smaller amount of data. H.264 specifies a method for generating a chrominance-component motion vector based on a luminance-component motion vector. The motion-vector generation method differs depending on a combination of a reference-source field of a motion vector and parity (a field type indicating a top field or bottom field) of a reference-target field.
In particular, when both parities of the combination are different from each other, the chrominance-component motion vector is determined so as to specify a region above or below a position specified by the luminance-component motion vector. Thus, in this case, the region that can be specified by the chrominance-component motion vector is further extended.
In general, encoding an image with a large number of pixels requires a large amount of processing. Accordingly, one conceivable scheme is a scheme in which one picture of a moving image is divided into multiple images and the divided images are input to individual encoders for encoding. In this case, the encoders encode the input divided images independently from one another, regarding each of the images as one picture, and encoded data output from the encoders are eventually multiplexed and output. According to such processing, the encoders can be realized by encoders having low processing capabilities. Thus, for example, a manufacturing cost of an entire encoding device can be reduced in some cases.
In a such method for encoding divided images by using multiple encoders, encoding may be performed independently for each divided image. In this case, a reference image region that is accessible by one encoder is restricted to, in an already encoded image region, a region that is the same as the divided image input to the encoder. With such a system, it is possible to reduce a capacity required per memory and it is possible to further reduce the manufacturing cost.
In a system in which multiple encoders are used to encode divided images, as described above, a reference image region that is accessible by each encoder may be restricted to the same region as the input divided image. In such a system, if referring to a region outside the boundary of the input image is permitted during motion compensation, there is a possibility that an erroneous prediction image is generated during decoding.
More specifically, since each encoder regards the input divided image as an individual picture, the encoder extends the region of the reference image based on data of pixels inside the divided image to refer to a region outside the boundary of the corresponding divided image. However, when the motion vector specifies a region outside the boundary of the divided image during decoding, the decoder may extend the region of the reference image based on data of the pixels of another adjacent divided image, not the pixels inside the corresponding divided image. Consequently, an event called a “motion compensation mismatch” in which a reference image during encoding and a reference image during decoding are different from each other occurs.
In particular, with a method for generating a chrominance-component motion vector based on a luminance-component motion vector, even when the luminance-component motion vector specifies a region inside the input image, the chrominance-component motion vector can specify a region outside the boundary of the input image. Thus, when such a motion-vector generation method is applied to the above-described system using multiple encoders, the possibility of occurrence of a motion compensation mismatch increases.
In addition, when a single encoder is used to encode image data input for each divided region, a motion compensation mismatch can occur as in the case described above.